适用于基于 Arm 的 Windows 11 应用的 Arm64EC

您所在的位置:网站首页 arm windows lol 适用于基于 Arm 的 Windows 11 应用的 Arm64EC

适用于基于 Arm 的 Windows 11 应用的 Arm64EC

#适用于基于 Arm 的 Windows 11 应用的 Arm64EC | 来源: 网络整理| 查看: 265

Arm64EC - 在 Arm 上生成和移植应用,实现本机性能 项目 06/02/2023

Arm64EC (“仿真兼容”) 使你能够生成新的本机应用或以增量方式转换现有 x64 应用,以利用 Arm 供电设备可能实现的本机速度和性能,包括更好的功耗、电池使用时间和加速的 AI & ML 工作负载。

Arm64EC 是一个新的应用程序二进制接口 (ABI) ,适用于在具有Windows 11的 Arm 设备上运行的应用。 这是一项Windows 11功能,需要使用 Windows 11 SDK,在 arm 上的 Windows 10 上不可用。

互操作性

作为 Arm64EC 生成的代码与在同一进程中仿真下运行的 x64 代码可互操作。 进程中的 Arm64EC 代码以本机性能运行,而任何 x64 代码使用内置Windows 11的仿真运行。 即使应用依赖于尚不支持 Arm 的现有依赖项或插件,也可以开始将应用的某些部分重新生成为 Arm64EC,以获得本机性能的优势。

Arm64EC 通过遵循 x64 软件约定(包括调用约定、堆栈使用情况、数据结构布局和预处理器定义)来保证与 x64 的互操作性。 但是,Arm64EC 代码与生成为 Arm64 的代码不兼容,后者使用一组不同的软件约定。

Arm 操作系统本身的Windows 11在很大程度上依赖于 Arm64EC 的互操作性来支持运行 x64 应用程序。 在 arm Windows 11 上运行的 x64 应用加载的大多数操作系统代码都将编译为 Arm64EC,从而在应用程序不知道的情况下为该代码启用本机性能。

x64 或 Arm64EC 进程可以同时加载和调用 x64 和 Arm64EC 二进制文件,而 Arm64 进程只能加载 Arm64 二进制文件。 这两种体系结构都可以加载 Arm64X 二进制文件,因为这些二进制文件 同时包含 x64 和 Arm64 的代码。

进程体系结构 x64 二进制 Arm64EC 二进制文件 Arm64 二进制文件 x64/Arm64EC ✔ ✔ ❌ Arm64 ❌ ❌ ✔

✔ = Supported, ❌ = Not Supported

同样,在生成时,Arm64EC 二进制文件可以在 x64 和 Arm64EC 库中链接,而 Arm64 二进制文件只能在 Arm64 库中链接。

PE 体系结构 x64 lib Arm64EC lib Arm64 lib Arm64EC ✔ ✔ ❌ Arm64 ❌ ❌ ✔

✔ = Supported, ❌ = Not Supported

有关 Arm64EC ABI 如何实现互操作性的更多详细信息,请参阅 了解 Arm64EC ABI 和程序集代码。

使用 Arm64EC 在 Arm 上更快地Windows 11现有应用

Arm64EC 使你能够以 增量方式 将现有应用中的代码从模拟转换为本机。 在此过程中的每个步骤中,应用程序都可以继续正常运行,而无需一次性重新编译所有。

上图显示了一个简化的示例,即完全模拟的 x64 工作负载需要一些时间,然后使用 Arm64EC 进行增量改进:

作为完全模拟的 x64 工作负载开始 将 CPU 最密集的部件重新编译为 Arm64EC 之后 在一段时间内继续重新编译更多 x64 模块后 完全本机 Arm64EC 应用的结束结果

通过重新编译从 x64 到 Arm64EC 花费最多时间或 CPU 最密集的模块,生成的工作负载在每一步的工作量最少时得到最大的改进。

应用依赖项

使用 Arm64EC 重新生成应用程序时,需要使用 Arm64EC 版本的依赖项,但也可以依赖于 x64 版本的依赖项。 Arm64 版本的依赖项将不可用。

Arm64EC 进程中的任何 x64 代码(包括依赖项的代码)都将在应用中模拟运行。 确定从 x64 过渡到 Arm64EC 的最 CPU 密集型依赖项的优先级对提高应用性能的影响最大。

标识 Arm64EC 二进制文件和应用

在 arm Windows 11 上运行的应用将与 Arm64EC 二进制文件交互,就像它们是 x64 二进制文件一样。 应用不需要知道二进制文件中的代码已重新编译为 Arm64EC 的程度。 

对于有兴趣识别这些二进制文件的开发人员,可以使用 在开发人员命令提示符 link /dump /headers中查看它们。

File Type: EXECUTABLE IMAGE FILE HEADER VALUES 8664 machine (x64) (ARM64X)

(x64) 和 (ARM64X) 的组合表示二进制文件的某些部分已重新编译为 Arm64EC,即使二进制文件看起来仍然是 x64。 包含 (ARM64) 和 (ARM64X) 的计算机标头的二进制文件是可以同时加载到 x64 和 Arm64 应用中的 Arm64X PE 文件 。

Windows 任务管理器 还可用于识别应用是否已编译为 Arm64EC。 在任务管理器的“详细信息”选项卡中,“体系结构”列将显示 ARM64 (x64 兼容) ,适用于main可执行文件已部分或完全编译为 Arm64EC 的应用程序。

后续步骤

请参阅 Arm64EC 入门,了解如何使用 Arm64EC 生成或更新 Win32 应用。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3